package com.yangjiayu.service;

import com.yangjiayu.bean.ChatEntity;
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.document.Document;
import reactor.core.publisher.Flux;

import java.util.List;

/**
 * @Classname ChatService
 * @Description 测试大模型交互聊天
 * @Date 2025/8/12 20:18
 * @Created by YangJiaYu
 */

public interface ChatService {

    /**
     * 测试大模型交互聊天
     * @param prompt
     * @return
     */
    public String chatTest(String prompt);

    /**
     * 测试大模型交互聊天（流式相应）
     * @param prompt
     * @return
     */
    public Flux<ChatResponse> streamResponse(String prompt);


    public Flux<String>streamStr(String prompt);

    /**
     * 和大模型交互
     * @param chatEntity
     */
    public void doChat(ChatEntity chatEntity);

    /**
     * Rag知识库检索汇总给大模型输出
     * @param chatEntity
     * @param ragContext
     */
    public void doChatRagSearch(ChatEntity chatEntity, List<Document> ragContext);

    /**
     * 基于searxng的实时联网搜索
     * @param chatEntity
     */
    public void doInternetSearch(ChatEntity chatEntity);
}
